package com.wl2o2o.lanqiao.xzfourteen;
/** 
* @author : WLei224
* @date ：2023年4月2日 上午1:06:23 
* 
*/
public class erfen{
    public static void main(String[] args){
        //二分与分治的区别：分治是先分再治
        //二分求二元一次方程的根
    	System.out.println(search(19));

    }

    //抽取一个穷举根的方法
    public static int search(long p){
        int left = 1;
        int right = (int) (Math.sqrt(p/3))+1;
        while(left <= right){
            int mid = (left + right) >> 1;
            long fx = 3L*mid*mid + 3L*mid + 1;
            if(fx == p)return mid;
            else right = mid - 1;
        }
        return 0;
        
    }
}
